//
//  BSUserSGton.m
//  SuoSiApp
//
//  Created by zhang on 16/4/27.
//  Copyright © 2016年 Ym. All rights reserved.
//

#import "BSUserSGton.h"
// 获取当前设备可用内存及所占内存的头文件
#import <sys/sysctl.h>
#import <mach/mach.h>
#include <sys/param.h>
#include <sys/mount.h>
@implementation BSUserSGton

+ (BSUserSGton *)userHandle{

    static BSUserSGton *userhandle = nil;
    //    if (bluetoothHandle == nil) {
    //        bluetoothHandle = [[BSBluetoothSingleton alloc]init];
    //    }
    static dispatch_once_t onceToken;
    
    dispatch_once(&onceToken, ^{
        userhandle = [[BSUserSGton alloc]init];
        
        
    });
    return userhandle;


}
- (instancetype)init{
    
    self = [super init];
    if (self) {
       ;
    }
    return self;
}

+ (NSArray *)getECGDataFileListFromPath:(NSString *)path{

    NSFileManager * fileManager = [NSFileManager defaultManager];
    NSArray * tempFileList = [[NSArray alloc] initWithArray:[fileManager contentsOfDirectoryAtPath:path error:nil]] ;
    return tempFileList;
//
//#define FILEPATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]


}


+ (CGFloat ) freeDiskSpaceInBytes{
    struct statfs buf;
    long long freespace = -1;
    if(statfs("/var", &buf) >= 0){
        freespace = (long long)(buf.f_bsize * buf.f_bfree);
    }
    CGFloat memoryValue = freespace/1024/1024;
//    return [NSString stringWithFormat:@"手机剩余存储空间为：%qi MB" ,freespace/1024/1024];
    return memoryValue;
}


// 获取当前设备可用内存(单位：MB）
- (double)availableMemory
{
    vm_statistics_data_t vmStats;
    mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;
    kern_return_t kernReturn = host_statistics(mach_host_self(),
                                               HOST_VM_INFO,
                                               (host_info_t)&vmStats,
                                               &infoCount);
    
    if (kernReturn != KERN_SUCCESS) {
        return NSNotFound;
    }
    
    return ((vm_page_size *vmStats.free_count) / 1024.0) / 1024.0;
}

// 获取当前任务所占用的内存（单位：MB）
- (double)usedMemory
{
    task_basic_info_data_t taskInfo;
    mach_msg_type_number_t infoCount = TASK_BASIC_INFO_COUNT;
    kern_return_t kernReturn = task_info(mach_task_self(),
                                         TASK_BASIC_INFO,
                                         (task_info_t)&taskInfo,
                                         &infoCount);
    
    if (kernReturn != KERN_SUCCESS
        ) {
        return NSNotFound;
    }
    
    return taskInfo.resident_size / 1024.0 / 1024.0;
}

@end
